# 请你仅使用两个队列实现一个后入先出（LIFO）的栈，并支持普通栈的全部四种操作（push、top、pop 和 empty）。
#  实现 MyStack 类：
#  void push(int x) 将元素 x 压入栈顶。
#  int pop() 移除并返回栈顶元素。
#  int top() 返回栈顶元素。
#  boolean empty() 如果栈是空的，返回 true ；否则，返回 false 。
#
#  示例：
# 输入：
# ["MyStack", "push", "push", "top", "pop", "empty"]
# [[], [1], [2], [], [], []]
# 输出：
# [null, null, null, 2, 2, false]
from collections import deque


class MyStack:

    def __init__(self):
        self.queue1 = deque()
        self.tmpQueue = deque()

    def push(self, x: int) -> None:
        while self.queue1:
            self.tmpQueue.append(self.queue1.popleft())

        self.queue1.append(x)

        while self.tmpQueue:
            self.queue1.append(self.tmpQueue.popleft())

    def pop(self) -> int:
        return self.queue1.popleft() if self.queue1 else -1

    def top(self) -> int:
        return self.queue1[0]

    def empty(self) -> bool:
        return len(self.queue1) == 0


if __name__ == "__main__":
   stack = MyStack()
   stack.push(1)
   stack.push(2)
   print(stack.top())
   print(stack.pop())
   print(stack.pop())
   print(stack.empty())
